<!DOCTYPE html>
<html>

  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<meta http-equiv="Cache-Control" content="no-siteapp" />

    <title>xmake v2.3.8 发布, 新增 Intel C++/Fortran 编译器支持</title>
    <meta name="description" content="xmake 是一个基于 Lua 的轻量级跨平台构建工具，使用 xmake.lua 维护项目构建，相比 makefile/CMakeLists.txt，配置语法更加简洁直观，对新手非常友好，短时间内就能快速入门，能够让用户把更多的精力集中在实际的项目开发上。在这个新版本中，我们对 Intel 系列的 C++ 和 F...">

    
    <meta name="keywords" content="xmake,lua,C/C++,toolchains,wasm,emscripten,qt,intel,icc,fortran,tboox" /> 

    <!-- qq oauth -->
    <meta property="qc:admins" content="5211601217706727767255" />

    <!--icon -->
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" sizes="192x192" href="/static/img/nice-highres.png" />
	<link rel="apple-touch-icon-precomposed" href="/static/img/apple-touch-icon-57x57-precomposed.png" />
	<link rel="apple-touch-icon-precomposed" sizes="72x72" href="/static/img/apple-touch-icon-72x72-precomposed.png" />
	<link rel="apple-touch-icon-precomposed" sizes="114x114" href="/static/img/apple-touch-icon-114x114-precomposed.png" />
	<link rel="apple-touch-icon-precomposed" sizes="144x144" href="/static/img/apple-touch-icon-144x144-precomposed.png" />
	<link rel="apple-touch-icon-precomposed" sizes="180x180" href="/static/img/retinahd_icon.png" />
	<meta name="msapplication-TileImage" content="/static/img/retinahd_icon.png" />
	
    <link rel="stylesheet" href=" /css/fontawesome/css/font-awesome.min.css ">
    <link rel="stylesheet" href=" /css/main.css ">
    <link rel="canonical" href="https://tboox.org/cn/2020/10/17/xmake-update-v2.3.8/">
    <link rel="alternate" type="application/rss+xml" title="TBOOX Open Source Project" href="https://tboox.org/feed.xml ">
    <link rel="alternate" hreflang="en" href="https://tboox.org/" />
    <link rel="alternate" hreflang="zh-Hans" href="https://tboox.org/cn/" />

    <!-- css -->
    <link href="/css/reward.css" rel="stylesheet" type="text/css"> 




    <script type="text/javascript">
    function isPC(){    
        var userAgentInfo = navigator.userAgent;  
        var Agents = new Array("Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod");    
        var flag = true;    
        for (var v = 0; v < Agents.length; v++) {    
            if (userAgentInfo.indexOf(Agents[v]) > 0) { flag = false; break; }    
        }    
        return flag;    
    }
    </script>

<!-- baidu ads -->



    <!-- baidu ads -->

</head>


  <body>

    <header id="top">
    <div class="wrapper">
        <a href="/cn" class="brand">TBOOX</a>
        <button id="headerMenu" class="menu"><i class="fa fa-bars"></i></button>
        <nav id="headerNav">
            <ul>
                <li>
                    
                    <a href="/?lang=0">
                    
                        <i class="fa fa-home"></i>English
                    </a>
                </li>

                
                    
                    
                    <li>
                        
                            
                            <a href="/cn/project/">
                            
                        
                            <i class="fa fa-bookmark"></i>项目
                        </a>
                    </li>
                    
                    
                
                    
                    
                    
                
                    
                    
                    <li>
                        
                            
                            <a href="/cn/archive/">
                            
                        
                            <i class="fa fa-archive"></i>归档
                        </a>
                    </li>
                    
                    
                
                    
                    
                    
                
                    
                    
                    <li>
                        
                            
                            <a href="/cn/category/">
                            
                        
                            <i class="fa fa-th-list"></i>分类
                        </a>
                    </li>
                    
                    
                
                    
                    
                    
                
                    
                    
                    <li>
                        
                            
                            <a href="/cn/tag/">
                            
                        
                            <i class="fa fa-tags"></i>标记
                        </a>
                    </li>
                    
                    
                
                    
                    
                    
                
                    
                
                    
                    
                    <li>
                        
                            
                            <a href="/cn/docs/">
                            
                        
                            <i class="fa fa-book"></i>文档
                        </a>
                    </li>
                    
                    
                
                    
                    
                    
                
                    
                    
                    <li>
                        
                            
                            <a href="https://xmake.io/#/zh-cn/about/contact" target="_blank" >
                            
                        
                            <i class="fa fa-forumbee"></i>社区
                        </a>
                    </li>
                    
                    
                
                    
                    
                    
                
                    
                    
                    <li>
                        
                            
                            <a href="/cn/donation/">
                            
                        
                            <i class="fa fa-heart"></i>捐助
                        </a>
                    </li>
                    
                    
                
                    
                    
                    
                
                    
                    
                    <li>
                        
                            
                            <a href="/cn/about/">
                            
                        
                            <i class="fa fa-user"></i>关于
                        </a>
                    </li>
                    
                    
                
                    
                    
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                    
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            </ul>
        </nav>
    </div>
</header>



        <div class="page clearfix" post>
    <div class="left">
        <h1>xmake v2.3.8 发布, 新增 Intel C++/Fortran 编译器支持</h1>
        <div class="label">

            <div class="label-card">
                <i class="fa fa-calendar"></i>2020-10-17
            </div>

            <div class="label-card">
                
            </div>

            <div class="label-card">
                
            </div>

            <div class="label-card">
            


<!-- <span class="point">•</span> -->
<span class="categories">
  <i class="fa fa-th-list"></i>
  
    
        <a href="/category/#xmake" title="Category: xmake" rel="category">xmake</a>
    
  

  <!-- <span class="point">•</span> -->
</span>


            </div>

            <div class="label-card">
            
<!-- <span class="point">•</span> -->
<span class="pageTag">
  <i class="fa fa-tags"></i>
  
    
        <!--a href="/tag/#xmake" title="Tag: xmake" rel="tag">xmake</a-->
        <a href="/cn/tag/#xmake" title="Tag: xmake" rel="tag">xmake</a>&nbsp;
    
        <!--a href="/tag/#lua" title="Tag: lua" rel="tag">lua</a-->
        <a href="/cn/tag/#lua" title="Tag: lua" rel="tag">lua</a>&nbsp;
    
        <!--a href="/tag/#C%2FC%2B%2B" title="Tag: C/C++" rel="tag">C/C++</a-->
        <a href="/cn/tag/#C/C++" title="Tag: C/C++" rel="tag">C/C++</a>&nbsp;
    
        <!--a href="/tag/#toolchains" title="Tag: toolchains" rel="tag">toolchains</a-->
        <a href="/cn/tag/#toolchains" title="Tag: toolchains" rel="tag">toolchains</a>&nbsp;
    
        <!--a href="/tag/#wasm" title="Tag: wasm" rel="tag">wasm</a-->
        <a href="/cn/tag/#wasm" title="Tag: wasm" rel="tag">wasm</a>&nbsp;
    
        <!--a href="/tag/#emscripten" title="Tag: emscripten" rel="tag">emscripten</a-->
        <a href="/cn/tag/#emscripten" title="Tag: emscripten" rel="tag">emscripten</a>&nbsp;
    
        <!--a href="/tag/#qt" title="Tag: qt" rel="tag">qt</a-->
        <a href="/cn/tag/#qt" title="Tag: qt" rel="tag">qt</a>&nbsp;
    
        <!--a href="/tag/#intel" title="Tag: intel" rel="tag">intel</a-->
        <a href="/cn/tag/#intel" title="Tag: intel" rel="tag">intel</a>&nbsp;
    
        <!--a href="/tag/#icc" title="Tag: icc" rel="tag">icc</a-->
        <a href="/cn/tag/#icc" title="Tag: icc" rel="tag">icc</a>&nbsp;
    
        <!--a href="/tag/#fortran" title="Tag: fortran" rel="tag">fortran</a-->
        <a href="/cn/tag/#fortran" title="Tag: fortran" rel="tag">fortran</a>
    
  

</span>

            </div>

        </div>
        <hr>
        <article itemscope itemtype="http://schema.org/BlogPosting">
        <p><a href="https://github.com/xmake-io/xmake">xmake</a> 是一个基于 Lua 的轻量级跨平台构建工具，使用 xmake.lua 维护项目构建，相比 makefile/CMakeLists.txt，配置语法更加简洁直观，对新手非常友好，短时间内就能快速入门，能够让用户把更多的精力集中在实际的项目开发上。</p>

<p>在这个新版本中，我们对 Intel 系列的 C++ 和 Fortran 编译器做了全平台支持，并且改进了上个版本新加的 Wasm 工具链支持，同时对 Qt SDK for Wasm 也进行了支持。</p>

<p>另外，我们还将 luajit 升级到最新的 v2.1 版本，在跨平台方面，xmake 也做了很大的完善，增加了 mips64 架构的运行支持。</p>

<ul>
  <li><a href="https://github.com/xmake-io/xmake">项目源码</a></li>
  <li><a href="https://xmake.io/#/zh-cn/">官方文档</a></li>
  <li><a href="https://xmake.io/#/zh-cn/about/course">入门课程</a></li>
</ul>

<h2 id="入门课程">入门课程</h2>

<p>近期，我们也上线了官方的 xmake 入门课程，<a href="https://xmake.io/#/zh-cn/about/course">Xmake 带你轻松构建 C/C++ 项目</a> 以边学边做实验的方式快速学习 xmake 的使用。</p>

<h2 id="新特性介绍">新特性介绍</h2>

<h3 id="intel-c-编译器支持">Intel C++ 编译器支持</h3>

<p>这个版本上，我们对 Intel 系列的 C++ 编译器做了全平台支持，包括 windows上的 icl 以及 linux/macOS 下的 icc/icpc。</p>

<p>要想启用 Intel C++ 编译器，我们只需要在安装了的 Intel 编译器的系统上，通过 <code class="highlighter-rouge">--toolchain=icc</code> 参数切换到对应的工具链即可。</p>

<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>xmake f --toolchain<span class="o">=</span>icc
<span class="gp">$ </span>xmake
</code></pre>
</div>

<h3 id="intel-fortran-编译器支持">Intel Fortran 编译器支持</h3>

<p>之前的版本，xmake 仅仅支持 gfortran 编译器，而这个版本，我们也支持了 Intel Fortran 编译器，也就是 ifort，我们也只需要切换到对应的 ifort 工具链即可使用。</p>

<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>xmake f --toolchain<span class="o">=</span>ifort
<span class="gp">$ </span>xmake
</code></pre>
</div>

<h3 id="wasm-平台和-qtwasm-支持">Wasm 平台和 Qt/Wasm 支持</h3>

<p>上个版本，我们新增了 <code class="highlighter-rouge">--toolchain=emcc</code> 工具链来支持 wasm 程序的编译，但是仅仅指定工具链，并不能很好的调整目标程序的扩展名，例如对 <code class="highlighter-rouge">*.js</code> 和 <code class="highlighter-rouge">*.wasm</code> 的文件生成。</p>

<p>而新版本，我们继续新增了 <code class="highlighter-rouge">xmake f -p wasm</code> 平台，内置启用 emcc 工具链，并且再次基础上对周边的配置做了更好的完善。</p>

<p>只要切换到 wasm 平台，xmake 会默认生成 <code class="highlighter-rouge">*.js</code> 以及对应 <code class="highlighter-rouge">*.wasm</code> 等目标文件，还会额外生成可以加载 js 来运行 wasm 程序的 <code class="highlighter-rouge">*.html</code> 页面。</p>

<p>另外，我们还对 Qt SDK for Wasm 也做了支持，比如我们创建一个 Qt QuickApp 工程。</p>

<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>xmake create -t qt.quickapp_static quickapp
</code></pre>
</div>

<p>这里，我们注意到，我们创建的是需要静态link的Qt工程，因为 wasm 版本的 Qt 库，我们需要强制静态链接到程序才能正常使用。</p>

<p>生成的工程文件 xmake.lua 内容大概如下：</p>

<div class="language-lua highlighter-rouge"><pre class="highlight"><code><span class="n">add_rules</span><span class="p">(</span><span class="s2">"mode.debug"</span><span class="p">,</span> <span class="s2">"mode.release"</span><span class="p">)</span>

<span class="n">includes</span><span class="p">(</span><span class="s2">"qt_add_static_plugins.lua"</span><span class="p">)</span>

<span class="n">target</span><span class="p">(</span><span class="s2">"demo"</span><span class="p">)</span>
    <span class="n">add_rules</span><span class="p">(</span><span class="s2">"qt.quickapp_static"</span><span class="p">)</span>
    <span class="n">add_headerfiles</span><span class="p">(</span><span class="s2">"src/*.h"</span><span class="p">)</span>
    <span class="n">add_files</span><span class="p">(</span><span class="s2">"src/*.cpp"</span><span class="p">)</span>
    <span class="n">add_files</span><span class="p">(</span><span class="s2">"src/qml.qrc"</span><span class="p">)</span>
    <span class="n">add_frameworks</span><span class="p">(</span><span class="s2">"QtQuickControls2"</span><span class="p">,</span> <span class="s2">"QtQuickTemplates2"</span><span class="p">)</span>
    <span class="n">qt_add_static_plugins</span><span class="p">(</span><span class="s2">"QtQuick2Plugin"</span><span class="p">,</span> <span class="p">{</span><span class="n">linkdirs</span> <span class="o">=</span> <span class="s2">"qml/QtQuick.2"</span><span class="p">,</span> <span class="n">links</span> <span class="o">=</span> <span class="s2">"qtquick2plugin"</span><span class="p">})</span>
    <span class="n">qt_add_static_plugins</span><span class="p">(</span><span class="s2">"QtQuick2WindowPlugin"</span><span class="p">,</span> <span class="p">{</span><span class="n">linkdirs</span> <span class="o">=</span> <span class="s2">"qml/QtQuick/Window.2"</span><span class="p">,</span> <span class="n">links</span> <span class="o">=</span> <span class="s2">"windowplugin"</span><span class="p">})</span>
    <span class="n">qt_add_static_plugins</span><span class="p">(</span><span class="s2">"QtQuickControls2Plugin"</span><span class="p">,</span> <span class="p">{</span><span class="n">linkdirs</span> <span class="o">=</span> <span class="s2">"qml/QtQuick/Controls.2"</span><span class="p">,</span> <span class="n">links</span> <span class="o">=</span> <span class="s2">"qtquickcontrols2plugin"</span><span class="p">})</span>
    <span class="n">qt_add_static_plugins</span><span class="p">(</span><span class="s2">"QtQuickTemplates2Plugin"</span><span class="p">,</span> <span class="p">{</span><span class="n">linkdirs</span> <span class="o">=</span> <span class="s2">"qml/QtQuick/Templates.2"</span><span class="p">,</span> <span class="n">links</span> <span class="o">=</span> <span class="s2">"qtquicktemplates2plugin"</span><span class="p">})</span>
</code></pre>
</div>

<p>上面的配置中，我们除了启用 <code class="highlighter-rouge">qt.quickapp_static</code> 编译规则，还通过 <code class="highlighter-rouge">qt_add_static_plugins</code> 配置了一些必须的 Qt 插件。</p>

<p>接下来，我们只需要切换到 wasm 平台，并确保 Qt SDK 已设置，即可完成编译。</p>

<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>xmake f -p wasm <span class="o">[</span>--qt<span class="o">=</span>~/Qt]
<span class="gp">$ </span>xmake
</code></pre>
</div>

<p>完成编译后，xmake 会在 build 目录下生成 demo.html 以及对应的 demo.js/demo.wasm 程序，我们打开 demo.html 页面即可运行我们编译的 Qt 程序，显示效果如下图：</p>

<p><img src="/static/img/xmake/xmake-qt-wasm.png" alt="" /></p>

<p>关于 Qt/Wasm 更加详细的说明，见：<a href="https://github.com/xmake-io/xmake/issues/956">Issue #956</a></p>

<h3 id="新增-mathfloat-point-编译优化设置">新增 Math/Float-point 编译优化设置</h3>

<p>我们新增了一个 <code class="highlighter-rouge">set_fpmodels()</code> 设置接口，用于设置浮点的编译模式，对数学计算相关优化的编译抽象设置，提供：fast, strict, except, precise 等几种常用的级别，有些可同时设置，有些是有冲突的，最后设置的生效。</p>

<p>关于这些级别的说明，可以参考下微软的文档：<a href="https://docs.microsoft.com/en-us/cpp/build/reference/fp-specify-floating-point-behavior?view=vs-2019">Specify floating-point behavior</a></p>

<p>当然，对应gcc/icc等其他编译器，xmake 会映射到不同的编译flags。</p>

<div class="language-lua highlighter-rouge"><pre class="highlight"><code><span class="n">set_fpmodels</span><span class="p">(</span><span class="s2">"fast"</span><span class="p">)</span>
<span class="n">set_fpmodels</span><span class="p">(</span><span class="s2">"strict"</span><span class="p">)</span>
<span class="n">set_fpmodels</span><span class="p">(</span><span class="s2">"fast"</span><span class="p">,</span> <span class="s2">"except"</span><span class="p">)</span>
<span class="n">set_fpmodels</span><span class="p">(</span><span class="s2">"precise"</span><span class="p">)</span> <span class="c1">-- default</span>
</code></pre>
</div>

<p>关于这块详情见：<a href="https://github.com/xmake-io/xmake/issues/981">Issue #981</a></p>

<h3 id="openmp-支持">OpenMP 支持</h3>

<p>为了更加抽象简单的启用 openmp 特性，我们可以通过新增的 <code class="highlighter-rouge">c.openmp</code> 和 <code class="highlighter-rouge">c++.openmp</code> 这两个规则来设置，另外 linux、macOS 上我们需要额外的 libomp 库才行，因此可以通过 <code class="highlighter-rouge">add_requires("libomp")</code> 来快速引用和集成。</p>

<div class="language-lua highlighter-rouge"><pre class="highlight"><code><span class="n">add_requires</span><span class="p">(</span><span class="s2">"libomp"</span><span class="p">,</span> <span class="p">{</span><span class="n">optional</span> <span class="o">=</span> <span class="kc">true</span><span class="p">})</span>
<span class="n">target</span><span class="p">(</span><span class="s2">"loop"</span><span class="p">)</span>
    <span class="n">set_kind</span><span class="p">(</span><span class="s2">"binary"</span><span class="p">)</span>
    <span class="n">add_files</span><span class="p">(</span><span class="s2">"src/*.cpp"</span><span class="p">)</span>
    <span class="n">add_rules</span><span class="p">(</span><span class="s2">"c++.openmp"</span><span class="p">)</span>
    <span class="n">add_packages</span><span class="p">(</span><span class="s2">"libomp"</span><span class="p">)</span>
</code></pre>
</div>

<p>如果是c代码，需要启用 <code class="highlighter-rouge">add_rules("c.openmp")</code>，如果是 c/c++ 混合编译，那么这两个规则都要设置。</p>

<h3 id="c11c17-的支持">c11/c17 的支持</h3>

<p>新版本中，xmake 对 <code class="highlighter-rouge">set_languages</code> 也做了改进，增加了新的 c11/c17 设置项，同时对最新版本 msvc 提供的 <code class="highlighter-rouge">/std:c11</code> 和 <code class="highlighter-rouge">/std:c17</code> 也做了适配和支持。</p>

<p>我们只需要简单的设置：</p>

<div class="language-lua highlighter-rouge"><pre class="highlight"><code><span class="n">set_languages</span><span class="p">(</span><span class="s2">"c17"</span><span class="p">)</span>
</code></pre>
</div>

<p>即可启用 c17 标准来编译，即使低版本 msvc 等编译器不支持，xmake 也会自动忽略设置。</p>

<h3 id="更好的-mingw-支持">更好的 Mingw 支持</h3>

<p>关于这块的改进，涉及几个方面，首先是 Windows 下 Mingw SDK 根目录的自动探测的改进，大部分情况下，我们都不需要额外配置 <code class="highlighter-rouge">--mingw=</code> 参数显式指定路径，也能够自动检测到了。</p>

<p>关于这块详情，见：<a href="https://github.com/xmake-io/xmake/issues/977">Issue #977</a></p>

<p>另外，除了 Msys2/Mingw 还有 macOS,linux/Mingw，我们在新版本中还额外支持了 <a href="https://github.com/mstorsjo/llvm-mingw">llvm-mingw</a> 这个 SDK，使得我们可以使用 mingw 来编译 arm/arm64 架构的程序。</p>

<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>xmake f -p mingw -a arm64
<span class="gp">$ </span>xmake
</code></pre>
</div>

<p>另外，在远程依赖包的自动编译集成上，现在带有 cmakelists 的第三方库，即使是 mingw 平台，xmake 也能自动编译集成进来直接使用，非常的快速方便。</p>

<p>而最近 <a href="https://github.com/xmake-io/xmake-repo">xmake-repo</a> 官方 C/C++ 包仓库中，我们也新增收入了不少支持 mingw 平台的新库，可直接使用。</p>

<h3 id="更好的跨平台运行">更好的跨平台运行</h3>

<p>我们新增了对 mips64 架构的 linux 系统运行支持，另外改进了 arm/arm64 下 xmake 的运行稳定性，通过合入最新的 luajit v2.1 ，解决了很多 luajit 遗留的问题，比如 arm64 下 lightuserdata 的 bad pointer 等问题。</p>

<h3 id="新增-macos-sierra-for-arm64-支持">新增 macOS Sierra for arm64 支持</h3>

<p>xmake 还对最新的 Xcode-beta 进行了适配，新增了 macOs for arm64 的目标程序编译支持，只需要切到 arm64 架构编译即可。</p>

<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>xmake f -a arm64 <span class="o">[</span>--xcode<span class="o">=</span>Applications/Xcode-beta.app/]
<span class="gp">$ </span>xmake
</code></pre>
</div>

<p>当然，前提是在 macOS 下运行，并且使用最新支持 Developer Transition Kit (DTK) 的 Xcode-beta 版本才行。</p>

<h3 id="官方仓库收录更多的-cc-库">官方仓库收录更多的 C/C++ 库</h3>

<p>在 xmake 的官方 C/C++ 仓库 <a href="https://github.com/xmake-io/xmake-repo">xmake-repo</a> 中，我们最近新增了几十个常用的 C/C++ 库，并且还对 libx11 系列的库都全部进行了收录。</p>

<p>虽然，仓库的包维护工作量巨大，但是目前的发展趋势也日趋活跃，我们收到了越来越多的用户对仓库包的贡献和改进维护。</p>

<p>并且，现在我们的官方仓库已经可以快速集成：linux, macOS, windows, mingw, bsd, msys, iphoneos, android 等八大常用平台的库，实现真正的跨平台 C/C++ 远程依赖库集成和使用支持。</p>

<p><img src="/static/img/xmake/xmake-packages.png" alt="" /></p>

<p>目前我们收录的一些包列表和支持平台，可以从这里查看：<a href="https://github.com/xmake-io/xmake-repo/blob/master/PKGLIST.md">PKGLIST.md</a></p>

<p>我们一直在努力解决 C/C++ 库生态的杂乱、集成使用繁琐等问题，提供快速一致的自动集成和编译方案，xmake 不仅支持 vcpkg/conan/clib/homebrew 等第三方官方仓库包的集成，并且也在努力完善自建的官方仓库，实现更好的集成体验。</p>

<p>例如：</p>

<div class="language-lua highlighter-rouge"><pre class="highlight"><code><span class="n">add_requires</span><span class="p">(</span><span class="s2">"tbox &gt;1.6.1"</span><span class="p">,</span> <span class="s2">"libuv master"</span><span class="p">,</span> <span class="s2">"vcpkg::ffmpeg"</span><span class="p">,</span> <span class="s2">"brew::pcre2/libpcre2-8"</span><span class="p">)</span>
<span class="n">add_requires</span><span class="p">(</span><span class="s2">"conan::openssl/1.1.1g"</span><span class="p">,</span> <span class="p">{</span><span class="n">alias</span> <span class="o">=</span> <span class="s2">"openssl"</span><span class="p">,</span> <span class="n">optional</span> <span class="o">=</span> <span class="kc">true</span><span class="p">,</span> <span class="n">debug</span> <span class="o">=</span> <span class="kc">true</span><span class="p">})</span>
<span class="n">target</span><span class="p">(</span><span class="s2">"test"</span><span class="p">)</span>
    <span class="n">set_kind</span><span class="p">(</span><span class="s2">"binary"</span><span class="p">)</span>
    <span class="n">add_files</span><span class="p">(</span><span class="s2">"src/*.c"</span><span class="p">)</span>
    <span class="n">add_packages</span><span class="p">(</span><span class="s2">"tbox"</span><span class="p">,</span> <span class="s2">"libuv"</span><span class="p">,</span> <span class="s2">"vcpkg::ffmpeg"</span><span class="p">,</span> <span class="s2">"brew::pcre2/libpcre2-8"</span><span class="p">,</span> <span class="s2">"openssl"</span><span class="p">)</span>
</code></pre>
</div>

<p>带有 <code class="highlighter-rouge">vcpkg::</code>，<code class="highlighter-rouge">brew::</code> 和 <code class="highlighter-rouge">conan::</code> 等命名空间的包，会自动切换到对应的第三方包仓库去下载集成，而默认的 <code class="highlighter-rouge">tbox &gt;1.6.1</code> 等库，则会默认使用 xmake-repo 官方仓库中提供的包。</p>

<p>使用和集成方式完全一致，xmake 会自动下载、编译、集成和链接。</p>

<p>关于远程包的依赖集成的更多详细说明，我们可以看下相关的文档说明：<a href="https://xmake.io/#/zh-cn/package/remote_package">远程依赖库集成和使用</a></p>

<p>同时，我们也欢迎更多的人参与进来，帮忙一起改善 C/C++ 的库生态的建设，提供简洁一致的库使用体验，我相信 C/C++ 包管理和库生态并不比 Rust/Go 差。</p>

<h3 id="更多的发行版安装支持">更多的发行版安装支持</h3>

<p>在新版本中，我们将 xmake 提交了 Ubuntu PPA 源，因此除了现有的脚本安装方式外，我们也可以通过 apt 去快速安装 xmake。</p>

<div class="language-bash highlighter-rouge"><pre class="highlight"><code>sudo add-apt-repository ppa:xmake-io/xmake
sudo apt update
sudo apt install xmake
</code></pre>
</div>

<p>同时，我们也将包提交到了 Copr 包管理仓库，使得我们也可以在 Fedora, RHEL，OpenSUSE，CentOS 等发行版中，通过 dnf 来快速安装 xmake。</p>

<div class="language-bash highlighter-rouge"><pre class="highlight"><code>sudo dnf copr <span class="nb">enable </span>waruqi/xmake
sudo dnf install xmake
</code></pre>
</div>

<h2 id="更新内容">更新内容</h2>

<h3 id="新特性">新特性</h3>

<ul>
  <li><a href="https://github.com/xmake-io/xmake/issues/955">#955</a>: 添加 Zig 空工程模板</li>
  <li><a href="https://github.com/xmake-io/xmake/issues/956">#956</a>: 添加 Wasm 编译平台，并且支持 Qt/Wasm SDK</li>
  <li>升级luajit到v2.1最新分支版本，并且支持mips64上运行xmake</li>
  <li><a href="https://github.com/xmake-io/xmake/issues/972">#972</a>: 添加<code class="highlighter-rouge">depend.on_changed()</code>去简化依赖文件的处理</li>
  <li><a href="https://github.com/xmake-io/xmake/issues/981">#981</a>: 添加<code class="highlighter-rouge">set_fpmodels()</code>去抽象化设置math/float-point编译优化模式</li>
  <li><a href="https://github.com/xmake-io/xmake/issues/980">#980</a>: 添加对 Intel C/C++ 和 Fortran 编译器的全平台支持</li>
  <li><a href="https://github.com/xmake-io/xmake/issues/986">#986</a>: 对16.8以上msvc编译器增加 <code class="highlighter-rouge">c11</code>/<code class="highlighter-rouge">c17</code> 支持</li>
  <li><a href="https://github.com/xmake-io/xmake/issues/979">#979</a>: 添加对OpenMP的跨平台抽象配置。<code class="highlighter-rouge">add_rules("c++.openmp")</code></li>
</ul>

<h3 id="改进">改进</h3>

<ul>
  <li><a href="https://github.com/xmake-io/xmake/issues/958">#958</a>: 改进mingw平台，增加对 llvm-mingw 工具链的支持，以及 arm64/arm 架构的支持</li>
  <li>增加 <code class="highlighter-rouge">add_requires("zlib~xxx")</code> 模式使得能够支持同时安装带有多种配置的同一个包，作为独立包存在</li>
  <li><a href="https://github.com/xmake-io/xmake/issues/977">#977</a>: 改进 find_mingw 在 windows 上的探测</li>
  <li><a href="https://github.com/xmake-io/xmake/issues/978">#978</a>: 改进工具链的flags顺序</li>
  <li>改进XCode工具链，支持macOS/arm64</li>
</ul>

<h3 id="bugs修复">Bugs修复</h3>

<ul>
  <li><a href="https://github.com/xmake-io/xmake/issues/951">#951</a>: 修复 emcc (WebAssembly) 工具链在windows上的支持</li>
  <li><a href="https://github.com/xmake-io/xmake/issues/992">#992</a>: 修复文件锁偶尔打开失败问题</li>
</ul>

        </article>
        <hr>

        <!-- baidu ads -->
        

        <!-- reward -->
        <div style="text-align: center;">
            <button id="rewardButton" disable="enable" onclick="var qr = document.getElementById('QR'); if (qr.style.display === 'none') {qr.style.display='block';} else {qr.style.display='none'}">
              <span>赏</span>
            </button>
            <div id="QR" style="display: none;">
                <div id="wechat" style="display: inline-block">
                  <img id="wechat_qr" src="/static/img/weixin.png" alt="WeChat Pay"/>
                  <p>微信打赏</p>
                </div>
                <div id="alipay" style="display: inline-block">
                  <img id="alipay_qr" src="/static/img/alipay.png" alt="Alipay"/>
                  <p>支付宝打赏</p>
                </div>
            </div>
        </div>

        
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
            
                
            
        
            
        
            
        
            
            
                
                    
                    <h2 id="english">English</h2>
                    <ul>
                    
                    <li class="relatedPost">
                        <a href="/2020/10/17/xmake-update-v2.3.8/">xmake v2.3.8 released, Add Intel C++/Fortran Compiler Support
                        
                        </a>
                    </li>
                    
                    
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
        
            
            
                
            
        
            
        
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
        
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
        
            
            
                
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
            
                
            
        
            
            
                
            
        
            
            
                
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
            
            
                
            
        
            
        
        
            </ul>
        

        
        
            
        
            
            
            
                
                    
                        
                        <h2 id="similar_posts">相关文章</h2>
                        <ul>
                        
                        <li class="relatedPost">
                            <a href="/cn/2021/12/17/xmake-update-v2.6.2/">xmake v2.6.2 发布，新增 Linux 内核驱动模块构建支持
                            
                            </a>
                        </li>
                        
                        
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
            
        
            
        
            
            
            
                
                    
                        
                        <li class="relatedPost">
                            <a href="/cn/2021/12/03/xmake-update-v2.6.1/">xmake v2.6.1 发布，使用 Lua5.4 运行时，Rust 和 C++ 混合编译支持
                            
                            </a>
                        </li>
                        
                        
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
            
        
            
        
            
            
            
                
                    
                        
                        <li class="relatedPost">
                            <a href="/cn/2021/10/30/xmake-update-v2.5.9/">xmake v2.5.9 发布，改进 C++20 模块，并支持 Nim, Keil MDK 和 Unity Build
                            
                            </a>
                        </li>
                        
                        
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
            
        
            
        
            
            
            
                
                    
                        
                        <li class="relatedPost">
                            <a href="/cn/2021/10/08/xmake-update-v2.5.8/">xmake v2.5.8 发布，新增 Pascal/Swig 程序和 Lua53 运行时支持
                            
                            </a>
                        </li>
                        
                        
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
            
        
            
        
            
            
            
                
                    
                        
                        <li class="relatedPost">
                            <a href="/cn/2021/08/29/xmake-update-v2.5.7/">xmake v2.5.7 发布，包依赖锁定和 Vala/Metal 语言编译支持
                            
                            </a>
                        </li>
                        
                        
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
                    
                
            
            
        
        
            </ul>
        

        <div class="post-recent">
    <div class="pre">

        

        

        
        
        <p><strong>上一篇</strong> <a href="/cn/2020/10/09/xmake-course-build-c-projects/">xmake 官方入门课程上线: Xmake 带你轻松构建 C/C++ 项目</a></p>
        
    </div>

    <div class="nex">

        

        

        
        
        

        

        

        
        
        <p><strong>下一篇</strong> <a href="/cn/2020/10/19/ltui-v2.2/">LTUI v2.2 发布, 一个基于lua的跨平台字符终端UI界面库</a></p>
        
    </div>
</div>


        <h2 id="comments">评论</h2>
        






<div id="gitalk-container"></div>
<link rel="stylesheet" href="/css/gitalk.css">
<script src="/js/gitalk.min.js"></script>

<script>
const gitalk = new Gitalk({
  clientID: '73946dc1d9e2276ad0da',
  clientSecret: '12a3cb94361ba3ebc6ecb68cf80d592bfaa8106d',
  repo: 'tboox.github.io',
  owner: 'waruqi',
  admin: ['waruqi'],
  id: location.pathname,       
  language: 'zh-CN',
  distractionFreeMode: false  
})

gitalk.render('gitalk-container')
</script>





    </div>
    <button class="anchor"><i class="fa fa-anchor"></i></button>
    <div class="right">
        <div class="wrap">

            <!-- codefund ads -->
            

            <!-- Content -->
            <div class="side content">
                <div>
                    内容
                </div>
                <ul id="content-side" class="content-ul">
                    <li><a href="#english">English</a></li>
                    <li><a href="#similar_posts">相关文章</a></li>
                    <li><a href="#comments">评论</a></li>
                </ul>
            </div>


            <!-- baidu ads -->
            
            
            <br>
            <div class="side">
                <div>
                    <i class="fa fa-external-link"></i>
                    链接
                </div>
                <ul class="content-ul">
                  <li><a href="http://github.com/waruqi/tbox">tbox</a></li>
                  <li><a href="http://www.xmake.io">xmake</a></li>
                  <li><a href="https://github.com/waruqi">github</a></li>
                </ul>
            </div> 

            <!-- xmake courses -->
            <br>
            <div class="side">
                <div>
                    <i class="fa fa-external-link"></i>
                    xmake 入门课程
                </div>
                <a href="https://xmake.io/#/zh-cn/about/course" target="_blank">
                <img src="/static/img/xmake-course.png" alt="course" width="256" height="193">
                </a>
            </div>

            <!-- qqgroup -->
            <br>
            <div class="side">
                <div>
                    <i class="fa fa-external-link"></i>
                    技术交流群（QQ）
                </div>
                <img src="/static/img/qqgroup.png" alt="qqgroup" width="256" height="284">
            </div> 

            <!-- google ads -->
            

            <!-- baidu ads -->
            

        </div>
    </div>

    <!-- baidu ads -->
    
</div>
<script>
/**
 * target _blank
 */
(function() {
    var aTags = document.querySelectorAll('article a:not([id])')
    for (var i = 0; i < aTags.length; i++) {
        aTags[i].setAttribute('target', '_blank')
    }
}());
</script>
<script src="/js/pageContent.js " charset="utf-8"></script>



    <footer class="site-footer">
    <div class="wrapper">
        <p class="description">
             Copyright (c) 2016-2020 tboox.org 
        </p>
        <p class="contact">
            
            <a href="https://github.com/waruqi" title="GitHub"><i class="fa fa-github" aria-hidden="true"></i></a> 
             
            
            <a href="mailto:waruqi@gmail.com" title="email"><i class="fa fa-envelope-o" aria-hidden="true"></i></a> 
            
            
            <a href="https://twitter.com/waruqi" title="Twitter"><i class="fa fa-twitter" aria-hidden="true"></i></a> 
            
            <a href="/feed.xml" title="feed"><i class="fa fa-feed" aria-hidden="true"></i></a> 
        </p>
        <p class="power">
            <span>
                Site powered by <a href="https://jekyllrb.com/">Jekyll</a> & <a href="https://github.com/Gaohaoyang">HyG</a> & <a href="https://pages.github.com/">Github Pages</a>.
            </span>
        </p>
    </div>
</footer>

    <div class="back-to-top">
    <a href="#top" class="scroll">
        <i class="fa fa-arrow-up" aria-hidden="true"></i>
    </a>
</div>

    <script src=" /js/main.js " charset="utf-8"></script>
    <script src=" /js/scroll.min.js " charset="utf-8"></script>
  </body>

</html>
